1. Field of the Invention
The present invention relates to the field of interfacing peripheral devices to a computer system, and more particularly, to methods and apparatus for specifying input/output (I/O) recovery times.
2. Art Background
In order to integrate peripheral components, such as external memory cards, modems and storage devices, some computer systems utilize an open-ended architecture. The open ended computer architecture permits interfacing a number of peripheral components to the computer system. In general, computer systems comprise address, data and control buses to interface peripheral components with computer system resources. In order to interface peripheral components to a computer system via a bus, the computer bus comprises various bus specifications. For example, the computer bus specifications define the timing and voltage level for signals transmitted on the bus. Although defining a bus specification permits interfacing of peripheral devices, once the specification is defined, the specification can not be changed without losing compatibility with existing peripheral devices. However, it may be desirable to change the bus specifications because new technology permits an increased level of performance for bus interface specifications. Therefore, it is desirable to change bus specifications for interfacing new peripheral components while remaining compatible with existing peripheral components.
In addition to timing and voltage specifications, an input/output (I/O) recovery time specification is required to interface I/O peripheral devices to a computer bus. The I/O recovery time is defined as the length of time required for the I/O peripheral device to recover from a previous I/O access before a subsequent I/O access can successfully occur. Typically, the I/O recovery specification is only a limitation for I/O devices such as hard disk drives, floppy disk drives, and modems. The I/O recovery time is a function of each individual I/O peripheral device. For example, a hard disk drive requires time after an I/O access to re-position the head of the disk drive. In this example, the I/O recovery time is a limitation due to mechanical motion, and varies depending on the particular hard drive. The I/O recovery time may also be a protocol utilized by the peripheral component. For example, a modem comprises a handshake protocol to an external source, and the modem must complete the protocol before accepting an additional request. All I/O access delay times, whether mechanical or otherwise, may be generally classified as I/O recovery time.
I/O recovery times result in a computer system latency when successive accesses to I/O peripheral devices are desired. For example, a CPU may access a hard drive to obtain large amounts of data for processing. Because the CPU to hard drive data transfer is limited to a specific data block size, several accesses to the hard drive may be required. In such a case, the CPU accesses a first block of data on the hard drive. The I/O recovery time defines the time in which the CPU must wait before accessing a second block of data from the hard drive. Therefore, if the I/O recovery time is extensive, then much time is wasted waiting between access cycles.
Typically, computer systems address the problem of I/O recovery times by defining a maximum time for which successive accesses can occur. Under a standard bus specification, all I/O peripheral devices must operate under this minimal I/O recovery time specification. Therefore, in order to accommodate all peripheral components, the minimum I/O recovery time must accommodate the slowest I/O peripheral device. Because it is desirable to remain compatible with all existing peripheral components, the I/O recovery time must accommodate the slowest peripheral component. Although such a bus specification provides compatibility with all I/O peripheral devices, the specification forfeits the advantages of fast I/O recovery peripheral devices. Therefore, it is desirable to provide an I/O recovery time based on the specific peripheral device. In accessing large amounts of data from an I/O peripheral device, such an accommodation results in greatly improved system performance.